package com.pan.thread;

import lombok.extern.slf4j.Slf4j;

/**
 * 实现Runnable接口的类
 * @author by panstark
 * @description
 * @notice
 * @date 2021/4/29
 */
@Slf4j
public class HorseRunnable implements Runnable {

    @Override
    public void run() {
        String name = Thread.currentThread().getName();
        log.info("我是一匹:{}，因为我实现了Runnable接口，这样我就可以跑在一个单独的线程里。", name);
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        log.info("{}已经跑完了",name);
    }


    /**
     * 这里设置睡眠时间，可以看到
     * 当main主线程结束后，子线程会依然执行完成，并不受主线程的影响
     * @param args
     */
    public static void main(String[] args) {
        Thread horseThread = new Thread(new HorseRunnable());
        horseThread.setName("跑步接口千里马");
        horseThread.start();
        try {
            log.info("让主线程:{}睡1秒",Thread.currentThread().getName());
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        log.info("主线程:{}醒了，程序结束了。",Thread.currentThread().getName());
    }
}
